#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2017/8/26 下午1:13
# @Author  : Liujiaqi
# @Site    : 
# @File    : errorCode.py
# @Software: PyCharm
import logging
from util.Logger import Logger

logger = Logger('errorCode.log',logging.DEBUG,logging.DEBUG)

class ErrorCode():
    MYSQL_NOT_CONF_IN_ZEUS = {'return_code':20001,'status_code':500,'status_msg':'MYSQL_NOT_CONF_IN_ZEUS'}  #mysql没有在zeus monitor中配置

class CustomFlaskErr(Exception):
    errorCode = ErrorCode()
    # 默认的返回码
    status_code = 400

    # 自己定义了一个 return_code，作为更细颗粒度的错误代码
    def __init__(self, return_code=None, status_code=None, payload=None):

        Exception.__init__(self)
        self.return_code = return_code
        if status_code is not None:
            self.status_code = status_code
        self.payload = payload

    # 构造要返回的错误代码和错误信息的 dict
    def to_dict(self):
        rv = dict(self.payload or ())

        # 增加 dict key: return code
        rv['return_code'] = self.return_code

        # 增加 dict key: message, 具体内容由常量定义文件中通过 return_code 转化而来
        rv['status_code'] = self.status_code

        # 日志打印
        logger.debug(str(self.status_code)+" "+str(self.return_code))

        return rv